package config

type OssConfig struct {
	ApiKey     string `mapstructure:"key" json:"key"`
	ApiSecret  string `mapstructure:"secret" json:"secret"`
	RoleArn    string `mapstructure:"role_arn" json:"role_arn"`
	Region     string `mapstructure:"region" json:"region"`
	BucketName string `mapstructure:"bucket_name" json:"bucket_name"`
	// 这个地址内网穿透后的IP+Port，便于阿里云找到内网地址，实现访问
	CallBackUrl string `mapstructure:"callback_url" json:"callback_url"`
	UploadDir   string `mapstructure:"upload_dir" json:"upload_dir"`
}

type JWTConfig struct {
	SigningKey string `mapstructure:"key" json:"key"`
}

type ConsulConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type NacosConfig struct {
	Host      string `mapstructure:"host" json:"host"`
	Port      uint64 `mapstructure:"port" json:"port"`
	NameSpace string `mapstructure:"namespace" json:"namespace"`
	User      string `mapstructure:"user" json:"user"`
	Password  string `mapstructure:"password" json:"password"`
	DataId    string `mapstructure:"data_id" json:"data_id"`
	Group     string `mapstructure:"group" json:"group"`
}

type ServerConfig struct {
	Name       string       `mapstructure:"name" json:"name"`
	Port       int          `mapstructure:"port" json:"port"`
	Host       string       `mapstructure:"host" json:"host"`
	Tags       []string     `mapstructure:"tags" json:"tags"`
	OssInfo    OssConfig    `mapstructure:"oss" json:"oss"`
	JWTInfo    JWTConfig    `mapstructure:"jwt" json:"jwt"`
	ConsulInfo ConsulConfig `mapstructure:"consul" json:"consul"`
}
